Dynamic assignment of rights

ABSTRACT

A system for dynamic assignment of rights, in one example embodiment, comprises a communication module to receive an indication of a start of a user session, the user session being an instance of an application installed on a user device, the communication session to further receive parameters associated with the user session, the parameters including data indicative of a user associated with the user session, a processing module to determine, based on the parameters, a channel associated with the user session according to predetermined criteria, and an assigning module to selectively assign to the channel, based on the channel determination, an ownership right to the user session, the right including redirecting the user to a further application from the channel, branding the application, receiving access to user actions, responding to the user actions, and streaming data to the application during the user session.

RELATED APPLICATIONS

This application claims the benefit of the filing date of Provisional Application 61/253,260 filed on Oct. 20, 2009, which is incorporated herein by reference.

FIELD

This application relates generally to data processing and more specifically to computer-implemented systems and methods for dynamic assignment of rights.

BACKGROUND

Software applications and computer games have been traditionally made by developers and brought to the end users by media companies who can also own the appropriate distribution channels. Each media company typically demands a customized version of the application which is to include company's branding, promotions, and the ability to report user traffic statistics to the company analytics, targeting, customer care, and billing systems. Because of these requirements, content developers must make multiple customized builds to satisfy each distributor's requirements. With the rise of the central application store distribution model, multiple builds of the same application cannot be simultaneously distributed. Mobile service operators have been increasingly adopting the central application distribution module to distribute mobile applications. Yet, the traditional distribution model does not allow multiple entities to have simultaneous rights to a single branding and backend system integrated with the central point of sale and the end-user device. Thus, a developer must make a choice as to whether it distributes an application on its own or completely licenses the application to a publisher or another distribution entity. Furthermore, in case of multiple distributors, the application needs to be integrated with the corresponding proprietary backend systems and each backend system must have accesses to the data associated with the application users in order to add the application users to distributor's social network and to promote distributor's content to the application users.

SUMMARY

This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.

In an example, a rights management system comprises a communication module to receive an indication of a start of a user session, the user session being an instance of an application installed on a user device and to receive parameters associated with the user session, the parameters including data indicative of a user associated with the user session, a processing module to determine, based on the parameters, a channel associated with the user session according to predetermined criteria, and an assigning module to selectively assign to the channel, based on the channel determination, an ownership right to the user session, the right including redirecting the user to a further application from the channel, branding the application, receiving access to the user actions, responding to the user actions, and streaming data to the application during the user session.

In an example, the system further comprises a user database, wherein each user is assigned to one or more channels. In an example the system further comprises a relationship database, the relationship database including relationships between each user and the one or more channels and allowing assigning the ownership right to the user session based on the parameters. In example, the system further comprises a channel integrator to integrate applications in the channel by specifying a relationship between the applications sharing a plurality of users, wherein the right to each user session is referred by a user session within the application being assigned to the channel.

In an example, the system further comprises a streaming module to stream data to the application, the data including one or more promotions to promote one or more applications of the channel. In an example, the system the streaming module is to allow the branding the application according to specifications of the channel.

In an example, the right to the user session is sold by an owner of the channel or a distributor of the application.

In further examples, the above methods steps are stored on a machine-readable medium comprising instructions, which, when implemented by one or more processors, perform the steps. In yet further examples, subsystems, or devices can be adapted to perform the recited steps. Other features, examples, and embodiments are described below.

BRIEF DESCRIPTION OF DRAWINGS

Embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:

FIG. 1 is a block diagram showing a network environment within which system and methods for dynamic assignment of rights are implemented, in accordance with an example embodiment;

FIG. 2 is a block diagram showing a rights management system, in accordance with an example embodiment;

FIG. 3 is a block diagram showing a development environment within which system and methods for dynamic assignment of rights are implemented, in accordance with an example embodiment;

FIG. 4 is a block diagram showing a distribution environment within which system and methods for dynamic assignment of rights are implemented, in accordance with an example embodiment;

FIG. 5 is a flow chart showing a method for dynamic assignment of rights, in accordance with an example embodiment; and

FIG. 6 is a diagrammatic representation of an example machine in the form of a computer system, within which a set of instructions for causing the machine to perform any one or more of the methodologies discussed herein may be executed.

DETAILED DESCRIPTION

Traditionally, a channel (e.g., a game network) is run by a media company experienced in entertaining a specific segment of the audience. Such company can also be experienced in monetizing specific content. To attract new users, a media company typically utilizes content created by third parties. Because further content can be easily marketed to the existing users, the existing users become a major asset of the media company.

An application developer creates content. The content can be distributed by the application developer itself, but typically the application developer enters into partnership and licensing arrangements with a distribution company in order to reach the existing users of media companies. In the licensing arrangement with the distribution company, an application can be partially or completely re-branded and the developer paid licensing fees.

In case of multiple distribution points and internet portals, an application developer can enter in partnership agreements with multiple distributors and allow its application to be distributed under multiple brands. In contrast, in case of a single central distribution point, such as App Store by Apple, Inc., the application developer does not have this option. Accordingly, the application developer should decide whether to market the application itself or to enter into a partnership agreement with one of the distributors.

Another obstacle that can prevent application developers from utilizing multiple distributors is a typical requirement by a distributor to own all user and traffic data associated with the application. In case of multiple distributors, the application needs to be integrated with the corresponding proprietary backend systems. Each of these backend systems should allow its operators to own the data associated with the application users in order to add the application users to distributor's social network and to promote other distributor's content to the application users.

Once the application is integrated with the appropriate backend system, it becomes very difficult for the application developer to switch to another distributor. Additionally, in case of a successful application, it can be prohibitively expensive for a single distributor to include the application in its channel because the distributor must acquire exclusive rights to the application. Thus, each application must have its own backend system or be integrated with the backend systems of other distributors. Aforementioned limitations prevent both application developers and distributors to operate efficiently.

Systems and methods for dynamic assignment of rights in mobile applications can enable multiple market participants to share a single application simultaneously by dynamically associating a user session with an appropriate channel. The association with the channel can be performed based on the data associated with the user or the user device. For example, if the user is referred by a user session of another application, the user session of the new application can be associated with the same channel as the referring application. The new application can be dynamically re-branded for the duration of the user session, and all of the user and user action data associated with this user session becomes property of the current channel.

If the user enters the application directly, the association with a channel may be performed based on other available data, for example, an identification of the user mobile device. In some example embodiments, the user session can be associated with a default channel. Therefore, instead of permanently associating an application within a channel, the application becomes the hub for multiple participating channels.

Thus, systems and methods for dynamic assignment of rights in mobile applications can allow simultaneous use of the same application by multiple channels. In order to assign a user session to a channel, the application can be included in the list of applications associated with the channel.

While a user session is associated with the channel, the system for dynamic assignment of rights can track the user and his activities as well as to brand the application and to allow the channel to stream promotional materials such as advertisement and updates.

Thus, systems and methods for dynamic assignment of rights allow providing application to users without having to permanently associate the application with a particular channel. In order to license the application to a channel, the channel can be registered with the system for dynamic assignment of rights. Once the channel is registered, the system can redirect its users to the application, brand the application and get access to the user traffic information.

An example system for dynamic assignment of rights can maintain a database specifying relationships with various channels. It can also maintain a user database from which it can determine assignment of the user sessions based on the referrals and the parameters that are transferred with user requests.

For example, a mobile application running on a mobile device can receive services from a backend system (e.g. a channel). These services can include integration with social and gaming networks, promotions, and other channel services. The system for dynamic assignment of rights can enable the content owner who is selling the content to switch between various backend systems (channels) in order to sell the content to a higher bidder or to join a more promising network (channel) without having to make another application build and distribution. Once the content owner sells the application to a channel, the channel becomes the owner of the users of the application and the content it is selling to the users.

An advertisement networks aggregator can redirect advertisement calls to the highest biding ad network. In contrast to an advertisement network aggregator, a system for dynamic assignment of rights allows an application to become a part of a channel. Thereafter, the application becomes a visible to other channel users who can use application's content and services according to the channel rules. The current application users (regardless of their origin) become a part of the channel application users.

FIG. 1 is a block diagram showing a network environment 100 within which systems and methods for dynamic assignment of rights can be implemented, in accordance with an example embodiment. As shown in FIG. 1, network environment 100 can comprise a mobile device 110, channels 1, 2, and N, and a right management system 200. The mobile device 110 can further include an application 112. The rights management system 200 can include user and traffic data 240, application 112, an application and channel mapping 260, and a rights management process 280.

The application 112 can be downloaded from an application store 410 shown in FIG. 4. The application store 410 can serve multiple channels such as the channels 1, 2, and N when a user enters the application 112 (e.g. a game). The rights management system 180 can attempt to determine where the user is coming from. Thus, for example, is the user was redirected from another application, the user may bring some associated variables depending on what channel the user belongs to. Thus if the user was redirected from a different application, the channel to which the redirecting application belongs needs to be determined. As soon as the user enters the application 112, the application can be branded according to the associated channel. Furthermore, user information can be tracked by the channel.

Thus, the application 112 can be served in multiple channels and the branding can be changed depending on the channel owning the current user session. Various users can download the application 112 and the application can be simultaneously licensed to various channels. For example, the application 112 along with other applications can be included in the list of applications which belong to a specific application developer. When the application 112 is used as a part of the channel, it can be offered to other channel users. Additionally, once the application 112 becomes part of the channel, the current application users become channel users.

A user can use one application 112 and then switch to another application within the same channel. Once it is determined that the second application also belongs to the same channel, the second application can be branded according to the channel and the user data, and the activities can be logged by the channel. If a proper channel cannot be determined (e.g., user enters the application directly), a default channel can be associated with the application 112 and the application can be branded accordingly.

Thus, system and methods for dynamic assignment of rights can permit tracking users in different channels and changing the branding of the application depending on the assignment of the current user session. Accordingly, the application can become a hub for different application channels. Traditionally, an application belongs to a single entity and re-branding is a cumbersome process. The system and methods for dynamic assignment of rights allow one downloadable application to be simultaneously branded and served by multiple channels.

The rights management system 200 is a central server which determines rights to user sessions for various client applications. Depending on the user data, where the user comes from what kind of user it is, the rights management system 200 can distributes the user into one of the channels 1, 2, and N.

For example, the ownership of the current session can be determined from the ownership of the referring session. The user can enter the application 122 with a number of parameters including an identification of the mobile device 110. Other parameters can include a Universal Resource Locator (URL) and the name of the user. Based on these parameters the rights management system 200 can determine the appropriate channel.

Even though each user can belong to more than one channel, the rights and management system can determine which of the registered channels should have the ownership of the current user session. In some example embodiments, the parameters can be prioritized. For example, the ownership of the referring user session can take the highest priority in determining the ownership of the current session. Assignment of the user session to a default channel can be the lowest priority.

The rights management system 200 can also try to determine the ownership of the current user session based on a history associated with the mobile device 110. Thus, if the mobile device 110 has been used to play a certain game and the application 112 is from the same channel as the game, the user session can be assigned to the same channel. Other parameters used to determine the channel can include third party identifications (e.g., Facebook) which can also be indicative of channel associations. As already mentioned above, when it is difficult to determine the channel based on the parameters a default channel can be assigned. Once the user session is distributed to a channel, the channel can receive information concerning the user session activity and display advertisements and other offers.

FIG. 2 is a block diagram showing the rights management system 200, in accordance with an example embodiment. The rights management system 200 can include a communication module 202, a processing module 204, an assigning module 206, a user database 208, a relationship database 210, a channel integrator 212, and a streaming module 214. Operations of the foregoing modules are explained below with reference to FIG. 5.

FIG. 3 is a block diagram showing a development environment 300 within which system and methods for dynamic assignment of rights are implemented, in accordance with an example embodiment. The development environment 300 can include the application 112, a Software Development Kit (SDK) 320, a developer 310, the rights management system 200, and channels 1, 2, and N. The developer 310 can develop the application 112 and integrate the application 112 with the rights management system 200 using the SDK 320.

Channel operators willing to include the application 112 may have to negotiate with the developer 310. If an agreement with the developer is reached, the channel can direct its users to the application 112, which at that point will be shared by the channel and the developer 310. Thus, once the application 112 is registered with the channel, the channel can be capable of branding the application, tracking user information, and offering promotions from the channel database. The application 112 can run on the mobile device 110 getting services from a channel. The services can include integration with social and gaming networks, promotions, and other channel services. The application owner, instead of selling all rights to the application 112, can switch between channels, sell a conditional right it to a higher bidder, or join more promising network (channel) without making another application build and distribution.

Thus, it will be understood that the application 112 can become a part of a new channel that completely owns the users of the application and the content it is selling to users. In contrast to an advertisement networks aggregator which redirects an advertisement call to the highest biding advertisement network, the application 112 becomes a part of the channels. The application 112 can become visible to other channel users who can use its content and services according to the channel rules. The current application session users can become a part of the channel.

Thus, every time the application 112 is starting a new user session, the rights management system 200 can receive a request from a user to join the application 112, the application being remotely installed on the mobile device 110. This application 112 can communicate with the rights management system 200. The rights management system 200 can determine which channel owns this application at a given time for the current user which can be decided based on some parameters received with the request.

Thus, when the rights management system 200 receives a request from the user to join the application, the application 112 must be registered with the rights management system 200, or otherwise the request will not come through. Therefore, it is just a notification received by the rights management system 200 that the user entered the application 112. Next, rights management system 200, depending on the parameters provided with the request, can decide which channel is the owner of the user session.

For example, if a user is transferred from a different application, the rights to the user session can be assigned to the same channel automatically, the application branded accordingly, with the referring channel owning the user session of the application 112. In another example, a user can start by playing a game owned by a channel. From this game, the user follows a promotional link to a new game. The user downloads the game to his mobile device 110 and starts the game. The rights management system 200 can determine the referring channel. Therefore, the user session is assigned based on this referral. The branding can be provided by the appropriate channel and can include various designs, still images, and videos. The user session activity can be streamed to the channel. Additionally, the channel can stream data back to the user, the data including promotions, advertisements, and updates.

In some example embodiments, the user database 208 and the relationship database 210 can be utilized to keep track of the relationship with channels and their users. From these databases, it can be determined to which channel the user session should belong based on the referrals and the parameters that are transferred with the user. The developer 310 can integrate the application 112 using the Software Development Kit (SDK) 320 provided by the rights management system 200. The developer 310 can register the application 112 to channels and specify conditions by which the application is mapped to the appropriate channels.

FIG. 4 is a block diagram showing a distribution environment 400 within which system and methods for dynamic assignment of rights can be implemented, in accordance with an example embodiment. The distribution environment 400 can include applications 112 and 114, a channel 150, and the application store 410. In one example embodiment, the application can be entered from a direct link, for example by clicking on the application 112 from the touch screen of the mobile device 110. The application 112 can also be accessed indirectly from a different application. While using the application 112, the user can be referred to the application 114 which is not currently installed on the mobile device 110. The user can download the application 114 from the application store 410 based on the link provided in the application 112. Thus, the application 114 can be downloaded from the application store 410 and installed on the mobile device 110.

While the application 114 is being downloaded, the rights management system 200 can determine that the referring application is the application 112. If the user entered the application 112 directly, the rights management system 200 can associate the application 112 with the default channel. Thus, when the application 114 is being downloaded, the rights management system 200 can determine that the application 114 is to be associated with the same channel as the referring application 112.

In another example embodiment, the channel determination can be made based on the identifiers associated with the device, other identifiers associated with the users, or other parameters that constitute a reference known to the rights management system 200. For example, the rights management system 200 can determine, based on a Unique Device Identifier (UDID), that the user was previously referred from a different application. These and other parameters can be used to determine what associations, if any, the application 112 has with known channels. Based on these parameters, the rights management system 200 can determine that this user session should belong to the channel 150. This is the right of the channel 150 to own this session with respect to this user. This right applies to one session and may include the right to stream promotions to the application 112.

Thus, the rights management system 200 can facilitate dynamic allocations of rights. An entity willing to participate in the rights management system 200 can create a new channel which can include an application previously owned by the entity as well as one or more applications already integrated by the rights management system 200. Once the channel is formed, its applications can begin promoting each other. Once all of these applications are registered by the channel they belong to the channel.

Thus, the application 112 can take various appearances without new builds. In some example embodiments, the rights management system 200 can permit changing the branding within one channel or multiple channels based on the user preferences. Thus, the same channel can offers different appearances for different users.

In some example embodiments, the rights management system 200 can be implemented and deployed within the application store 410. When the developer 310 submits the application 112 to the application store 410, the application store 410 can tie the application with other applications to form a new channel or add the application to the existing channel 150. The application store 410 can add the application 112 to a channel without having the application source code. The application store 410 may be interested in implementing the rights management system 200 because it distributes multiple applications and is in relationships with multiple developers.

Thus, the rights management system 200 permits integrating of new application or use existing applications to form channels and to share revenues between the application owner and the operators of the rights management system 200. Using the systems and methods for dynamic assignment of rights, users can use any applications within a channel while remaining under control of the channel operators. Thus, the systems and methods for dynamic assignment of rights can provide tools to create channels. All applications within a particular channel of integrated applications are visible from other applications which are to be brought into the channel.

FIG. 5 is a flow chart showing FIG. 5 is a flow chart showing a method for dynamic assignment of rights 500, in accordance with an example embodiment. The method 500 may be performed by processing logic that may comprise hardware (e.g., dedicated logic, programmable logic, microcode, etc.), software (such as that which is run on a general-purpose computer system or a dedicated machine), or a combination of both. In one example embodiment, the processing logic resides at the rights management system 200 illustrated in FIG. 2.

The method 500 can commence at operation 502 with the rights management system 200 maintaining the user database 208. The user database 208 can keep track of the user to channel assignments. The method 500 can also maintain the relationship database 210, which includes relationships between each user and the one or more channels and allows assigning the right to the user session based on the parameters. At operation 506, the communication module 202 can receive an indication of a start of a user session which is a temporal instance of an application installed on the mobile device 110.

At operation 508, the communication module 202 can receive parameters associated with the user session, which can include data indicative a user associated with the user session. At operation 510, the processing module 204 can determine, based on the parameters, a channel to be associated with the user session according to predetermined criteria. At operation 512, the assigning module 206 can assign, based on the channel determination, a right to the user session to the channel allowing redirecting the user to a further application from the channel, branding the application, receiving access to user actions, responding to the user actions, and streaming data to the application during the user session.

FIG. 6 is a diagrammatic representation of an example machine in the form of a computer system 600, within which a set of instructions for causing the machine to perform any one or more of the methodologies discussed herein may be executed. In various example embodiments, the machine operates as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine may operate in the capacity of a server or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a portable music player (e.g., a portable hard drive audio device such as an Moving Picture Experts Group Audio Layer 3 (MP3) player), a web appliance, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.

The example computer system 600 includes a processor or multiple processors 602 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), or both), and a main memory 608 and static memory 614, which communicate with each other via a bus 628. The computer system 600 may further include a video display unit 606 (e.g., a liquid crystal display (LCD)). The computer system 600 may also include an alphanumeric input device 612 (e.g., a keyboard), a cursor control device 616 (e.g., a mouse), a voice recognition or biometric verification unit, a disk drive unit 620, a signal generation device 626 (e.g., a speaker) and a network interface device 618. The computer system 600 may further include a data encryption module (not shown) to encrypt data.

The disk drive unit 620 includes a computer-readable medium 622 on which is stored one or more sets of instructions and data structures (e.g., instructions 610) embodying or utilizing any one or more of the methodologies or functions described herein. The instructions 610 may also reside, completely or at least partially, within the main memory 608 and/or within the processors 602 during execution thereof by the computer system 600. The main memory 608 and the processors 602 may also constitute machine-readable media.

The instructions 610 may further be transmitted or received over a network 624 via the network interface device 618 utilizing any one of a number of well-known transfer protocols (e.g., Hyper Text Transfer Protocol (HTTP)).

While the computer-readable medium 622 is shown in an example embodiment to be a single medium, the term “computer-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database and/or associated caches and servers) that store the one or more sets of instructions. The term “computer-readable medium” shall also be taken to include any medium that is capable of storing, encoding, or carrying a set of instructions for execution by the machine and that causes the machine to perform any one or more of the methodologies of the present application, or that is capable of storing, encoding, or carrying data structures utilized by or associated with such a set of instructions. The term “computer-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical and magnetic media, and carrier wave signals. Such media may also include, without limitation, hard disks, floppy disks, flash memory cards, digital video disks, random access memory (RAMs), read only memory (ROMs), and the like.

The example embodiments described herein may be implemented in an operating environment comprising software installed on a computer, in hardware, or in a combination of software and hardware.

Thus, systems and methods for dynamic assignment of rights have been described. Although embodiments have been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the system and method described herein. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. 

1. A computer-implemented method for dynamic assignment of rights, the method comprising: receiving an indication of a start of a user session, the user session being an instance of an application installed on a user device; receiving parameters associated with the user session, the parameters including data indicative of a user associated with the user session; based on the parameters, determining a channel associated with the user session according to predetermined criteria; and based on the channel determination, selectively assigning to the channel, an ownership right to the user session, the ownership right including redirecting the user to a further application from the channel, branding the application, receiving access to the user actions, responding to the user actions, and streaming data to the application during the user session.
 2. The computer-implemented method of claim 1, wherein the parameters further include information indicative of a referring application.
 3. The computer-implemented method of claim 2, wherein the information includes one or more of the following: an identification of the user device and a known reference.
 4. The computer-implemented method of claim 1, further comprising: determining that the parameters lack information indicative of the channel associated with the user session; and based on the determination, selectively assigning the ownership right to a predetermined default channel.
 5. The computer-implemented method of claim 1, further comprising maintaining a user database, wherein each user is being assigned to one or more channels.
 6. The computer-implemented method of claim 5, further comprising maintaining a relationship database, the relationship database including relationships between each user and the one or more channels and allowing assigning the ownership right to the user session based on the parameters.
 7. The computer-implemented method of claim 6, wherein the channel is formed by specifying a relationship between the applications as sharing a plurality of users, the right to each user session being referred by a user session within the application being assigned to the channel.
 8. The computer-implemented method of claim 1, wherein the streaming data to the application includes promotions.
 9. The computer-implemented method of claim 8, wherein the promotions are used to promote one or more applications of the channel.
 10. The computer-implemented method of claim 1, wherein the right to the user session is sold by a distributor of the application.
 11. A rights management system, the system comprising: a communication module to receive an indication of a start of a user session, the user session being an instance of an application installed on a user device and to receive parameters associated with the user session, the parameters including data indicative of a user associated with the user session; a processing module to determine, based on the parameters, a channel associated with the user session according to predetermined criteria; and an assigning module to selectively assign to the channel, based on the channel determination, an ownership right to the user session, the right including redirecting the user to a further application from the channel, branding the application, receiving access to the user actions, responding to the user actions, and streaming data to the application during the user session.
 12. The system of claim 11, further comprising a user database, wherein each user is assigned to one or more channels.
 13. The system of claim 12, further comprising a relationship database, the relationship database including relationships between each user and the one or more channels and allowing assigning the ownership right to the user session based on the parameters.
 14. The system of claim 13, further comprising a channel integrator to integrate applications in the channel by specifying a relationship between the applications sharing a plurality of users, wherein the right to each user session is referred by a user session within the application being assigned to the channel.
 15. The system of claim 11, further comprising a streaming module to stream data to the application, the data including one or more promotions to promote one or more applications of the channel.
 16. The system of claim 15, wherein the streaming module is to allow the branding the application according to specifications of the channel.
 17. The system of claim 1, wherein the right to the user session is sold by an owner of the channel or a distributor of the application.
 18. A machine-readable medium comprising instructions for dynamic assignment of rights, which when implemented by one or more processors, performs the following operations: receive an indication of a start of a user session, the user session being a temporal instance of an application installed on a user device; receive parameters associated with the user session, the parameters including data indicative of a user associated with the user session; based on the parameters, determine a channel to be associated with the user session according to predetermined criteria, the channel including the application; and based on the channel determination, selectively assign a right to the user session to the channel, the right including redirecting the user to a further application from the channel, branding the application, receiving access to the user actions, responding to the user actions, and streaming data to the application during the user session. 